home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / gentoo_GLSA-200403-02.nasl < prev    next >
Text File  |  2005-03-31  |  10KB  |  160 lines

  1. # This script was automatically generated from 
  2. #  http://www.gentoo.org/security/en/glsa/glsa-200403-02.xml
  3. # It is released under the Nessus Script Licence.
  4. # The messages are release under the Creative Commons - Attribution /
  5. # Share Alike license. See http://creativecommons.org/licenses/by-sa/2.0/
  6. #
  7. # Avisory is copyright 2001-2004 Gentoo Foundation, Inc.
  8. # GLSA2nasl Convertor is copyright 2004 Michel Arboi
  9.  
  10. if (! defined_func('bn_random')) exit(0);
  11.  
  12. if (description)
  13. {
  14.  script_id(14453);
  15.  script_version("$Revision: 1.1 $");
  16.  script_xref(name: "GLSA", value: "200403-02");
  17.  
  18.  desc = 'The remote host is affected by the vulnerability described in GLSA-200403-02
  19. (Linux kernel do_mremap local privilege escalation vulnerability)
  20.  
  21.  
  22.     The memory subsystem allows for shrinking, growing, and moving of chunks of
  23.     memory along any of the allocated memory areas which the kernel posesses.
  24.     To accomplish this, the do_mremap code calls the do_munmap()
  25.     kernel function to remove any old memory mappings in the new
  26.     location - but, the code doesn\'t check the return value of
  27.     the do_munmap() function which may fail if the maximum number of
  28.     available virtual memory area descriptors has been exceeded.
  29.     Due to the missing return value check after trying to unmap the
  30.     middle of the first memory area, the corresponding page table
  31.     entries from the second new area are inserted into the page table
  32.     locations described by the first old one, thus they are subject to
  33.     page protection flags of the first area. As a result, arbitrary code
  34.     can be executed.
  35.   
  36. Impact
  37.  
  38.     Arbitrary code with normal non-super-user privelerges may be able
  39.     to exploit this vulnerability and may disrupt the operation of
  40.     other parts of the kernel memory management subroutines finally
  41.     leading to unexpected behavior.
  42.     Since no special privileges are required to use the mremap() and
  43.     mummap() system calls any process may misuse this unexpected
  44.     behavior to disrupt the kernel memory management subsystem. Proper
  45.     exploitation of this vulnerability may lead to local privilege
  46.     escalation allowing for the execution of arbitrary code with kernel level
  47.     root access.
  48.     Proof-of-concept exploit code has been created and successfully tested,
  49.     permitting root escalation on vulnerable systems. As a result, all users
  50.     should upgrade their kernels to new or patched versions.
  51.   
  52. Workaround
  53.  
  54.     Users who are unable to upgrade their kernels may attempt to use
  55.     "sysctl -w vm.max_map_count=1000000", however, this is a temporary fix
  56.     which only solves the problem by increasing the number of memory areas
  57.     that can be created by each process. Because of the static nature of
  58.     this workaround, it is not recommended and users are urged to upgrade
  59.     their systems to the latest avaiable patched sources.
  60.   
  61. References:
  62.     http://isec.pl/vulnerabilities/isec-0014-mremap-unmap.txt
  63.  
  64.  
  65. Solution: 
  66.     Users are encouraged to upgrade to the latest available sources for their
  67.     system:
  68.     # emerge sync
  69.     # emerge -pv your-favourite-sources
  70.     # emerge your-favourite-sources
  71.     # # Follow usual procedure for compiling and installing a kernel.
  72.     # # If you use genkernel, run genkernel as you would do normally.
  73.     # # IF YOUR KERNEL IS MARKED as "remerge required!" THEN
  74.     # # YOU SHOULD UPDATE YOUR KERNEL EVEN IF PORTAGE
  75.     # # REPORTS THAT THE SAME VERSION IS INSTALLED.
  76.   
  77.  
  78. Risk Factor : High
  79. ';
  80.  script_description(english: desc);
  81.  script_copyright(english: "(C) 2004 Michel Arboi");
  82.  script_name(english: "[GLSA-200403-02] Linux kernel do_mremap local privilege escalation vulnerability");
  83.  script_category(ACT_GATHER_INFO);
  84.  script_family(english: "Gentoo Local Security Checks");
  85.  script_dependencies("ssh_get_info.nasl");
  86.  script_require_keys('Host/Gentoo/qpkg-list');
  87.  script_summary(english: 'Linux kernel do_mremap local privilege escalation vulnerability');
  88.  exit(0);
  89. }
  90.  
  91. include('qpkg.inc');
  92. if (qpkg_check(package: "sys-kernel/usermode-sources", unaffected: make_list("eq 2.4.24-r1", "ge 2.6.3-r1"), vulnerable: make_list("lt 2.6.3-r1")
  93. )) { security_hole(0); exit(0); }
  94. if (qpkg_check(package: "sys-kernel/ppc-development-sources", unaffected: make_list("ge 2.6.3_rc1-r1"), vulnerable: make_list("lt 2.6.3_rc1-r1")
  95. )) { security_hole(0); exit(0); }
  96. if (qpkg_check(package: "sys-kernel/mips-sources", unaffected: make_list("ge 2.4.25_rc4"), vulnerable: make_list("lt 2.4.25_rc4")
  97. )) { security_hole(0); exit(0); }
  98. if (qpkg_check(package: "sys-kernel/ppc-sources-benh", unaffected: make_list("ge 2.4.22-r5"), vulnerable: make_list("lt 2.4.22-r5")
  99. )) { security_hole(0); exit(0); }
  100. if (qpkg_check(package: "sys-kernel/selinux-sources", unaffected: make_list("ge 2.4.24-r2"), vulnerable: make_list("lt 2.4.24-r2")
  101. )) { security_hole(0); exit(0); }
  102. if (qpkg_check(package: "sys-kernel/aa-sources", unaffected: make_list("ge 2.4.23-r1"), vulnerable: make_list("lt 2.4.23-r1")
  103. )) { security_hole(0); exit(0); }
  104. if (qpkg_check(package: "sys-kernel/ia64-sources", unaffected: make_list("ge 2.4.24-r1"), vulnerable: make_list("lt 2.4.24-r1")
  105. )) { security_hole(0); exit(0); }
  106. if (qpkg_check(package: "sys-kernel/ck-sources", unaffected: make_list("eq 2.4.24-r1", "ge 2.6.2-r1"), vulnerable: make_list("lt 2.6.2-r1")
  107. )) { security_hole(0); exit(0); }
  108. if (qpkg_check(package: "sys-kernel/alpha-sources", unaffected: make_list("ge 2.4.21-r4"), vulnerable: make_list("lt 2.4.21-r4")
  109. )) { security_hole(0); exit(0); }
  110. if (qpkg_check(package: "sys-kernel/grsec-sources", unaffected: make_list("ge 2.4.24.1.9.13-r1"), vulnerable: make_list("lt 2.4.24.1.9.13-r1")
  111. )) { security_hole(0); exit(0); }
  112. if (qpkg_check(package: "sys-kernel/gentoo-dev-sources", unaffected: make_list("ge 2.6.3_rc1"), vulnerable: make_list("lt 2.6.3_rc1")
  113. )) { security_hole(0); exit(0); }
  114. if (qpkg_check(package: "sys-kernel/ppc-sources-dev", unaffected: make_list("ge 2.4.24-r2"), vulnerable: make_list("lt 2.4.24-r2")
  115. )) { security_hole(0); exit(0); }
  116. if (qpkg_check(package: "sys-kernel/gentoo-sources", unaffected: make_list("eq 2.4.19-r11", "eq 2.4.20-r12", "ge 2.4.22-r7"), vulnerable: make_list("lt 2.4.22-r7")
  117. )) { security_hole(0); exit(0); }
  118. if (qpkg_check(package: "sys-kernel/win4lin-sources", unaffected: make_list("eq 2.4.23-r2", "ge 2.6.2-r1"), vulnerable: make_list("lt 2.6.2-r1")
  119. )) { security_hole(0); exit(0); }
  120. if (qpkg_check(package: "sys-kernel/ppc-sources-crypto", unaffected: make_list("ge 2.4.20-r3"), vulnerable: make_list("lt 2.4.20-r3")
  121. )) { security_hole(0); exit(0); }
  122. if (qpkg_check(package: "sys-kernel/planet-ccrma-sources", unaffected: make_list("ge 2.4.21-r5"), vulnerable: make_list("lt 2.4.21-r5")
  123. )) { security_hole(0); exit(0); }
  124. if (qpkg_check(package: "sys-kernel/pac-sources", unaffected: make_list("ge 2.4.23-r3"), vulnerable: make_list("lt 2.4.23-r3")
  125. )) { security_hole(0); exit(0); }
  126. if (qpkg_check(package: "sys-kernel/wolk-sources", unaffected: make_list("eq 4.9-r4", "ge 4.10_pre7-r3"), vulnerable: make_list("lt 4.10_pre7-r3")
  127. )) { security_hole(0); exit(0); }
  128. if (qpkg_check(package: "sys-kernel/sparc-dev-sources", unaffected: make_list("ge 2.6.3_rc1"), vulnerable: make_list("lt 2.6.3_rc1")
  129. )) { security_hole(0); exit(0); }
  130. if (qpkg_check(package: "sys-kernel/xfs-sources", unaffected: make_list("ge 2.4.24-r2"), vulnerable: make_list("lt 2.4.24-r2")
  131. )) { security_hole(0); exit(0); }
  132. if (qpkg_check(package: "sys-kernel/sparc-sources", unaffected: make_list("ge 2.4.24-r2"), vulnerable: make_list("lt 2.4.24-r2")
  133. )) { security_hole(0); exit(0); }
  134. if (qpkg_check(package: "sys-kernel/gs-sources", unaffected: make_list("ge 2.4.25_pre7-r2"), vulnerable: make_list("lt 2.4.25_pre7-r2")
  135. )) { security_hole(0); exit(0); }
  136. if (qpkg_check(package: "sys-kernel/hardened-sources", unaffected: make_list("ge 2.4.24-r1"), vulnerable: make_list("lt 2.4.24-r1")
  137. )) { security_hole(0); exit(0); }
  138. if (qpkg_check(package: "sys-kernel/mm-sources", unaffected: make_list("ge 2.6.3_rc1-r1"), vulnerable: make_list("lt 2.6.3_rc1-r1")
  139. )) { security_hole(0); exit(0); }
  140. if (qpkg_check(package: "sys-kernel/compaq-sources", unaffected: make_list("ge 2.4.9.32.7-r2"), vulnerable: make_list("lt 2.4.9.32.7-r2")
  141. )) { security_hole(0); exit(0); }
  142. if (qpkg_check(package: "sys-kernel/vanilla-sources", unaffected: make_list("ge 2.4.25"), vulnerable: make_list("lt 2.4.25")
  143. )) { security_hole(0); exit(0); }
  144. if (qpkg_check(package: "sys-kernel/vanilla-prepatch-sources", unaffected: make_list("ge 2.4.25_rc4"), vulnerable: make_list("lt 2.4.25_rc4")
  145. )) { security_hole(0); exit(0); }
  146. if (qpkg_check(package: "sys-kernel/development-sources", unaffected: make_list("ge 2.6.3_rc1"), vulnerable: make_list("lt 2.6.3_rc1")
  147. )) { security_hole(0); exit(0); }
  148. if (qpkg_check(package: "sys-kernel/openmosix-sources", unaffected: make_list("ge 2.4.22-r4"), vulnerable: make_list("lt 2.4.22-r4")
  149. )) { security_hole(0); exit(0); }
  150. if (qpkg_check(package: "sys-kernel/gaming-sources", unaffected: make_list("ge 2.4.20-r8"), vulnerable: make_list("lt 2.4.20-r8")
  151. )) { security_hole(0); exit(0); }
  152. if (qpkg_check(package: "sys-kernel/ppc-sources", unaffected: make_list("ge 2.4.24-r1"), vulnerable: make_list("lt 2.4.24-r1")
  153. )) { security_hole(0); exit(0); }
  154. if (qpkg_check(package: "sys-kernel/hppa-sources", unaffected: make_list("ge 2.4.24_p0-r1"), vulnerable: make_list("lt 2.4.24_p0-r1")
  155. )) { security_hole(0); exit(0); }
  156. if (qpkg_check(package: "sys-kernel/mips-prepatch-sources", unaffected: make_list("ge 2.4.25_pre6-r1"), vulnerable: make_list("lt 2.4.25_pre6-r1")
  157. )) { security_hole(0); exit(0); }
  158. if (qpkg_check(package: "sys-kernel/hppa-dev-sources", unaffected: make_list("ge 2.6.2_p3-r1"), vulnerable: make_list("lt 2.6.2_p3-r1")
  159. )) { security_hole(0); exit(0); }
  160.